package com.neusoft.elm.view.impl;

import java.util.List;
import java.util.Scanner;

import com.neusoft.elm.dao.BusinessDao;
import com.neusoft.elm.dao.impl.BusinessDaoImpl;
import com.neusoft.elm.po.Business;
import com.neusoft.elm.view.BusinessView;

public class BusinessViewImpl implements BusinessView{
	
	private Scanner input = new Scanner(System.in);

    @Override
    public void listBusinessAll() {
        BusinessDao dao = new BusinessDaoImpl();
        List<Business> list = dao.listBusiness(null,null);//参数为空时是全查询
        System.out.println("商家编号\t商家名称\t商家介绍\t起送费\t配送费");
        for(Business b : list){
           System.out.println(b.getBusinessId()+"\t"
           +b.getBusinessName()+"\t"
           +b.getBusinessAddress()+"\t"
           +b.getBusinessExplain()+"\t"
           +b.getStartPrice()+"\t"
           +b.getDeliveryPrice());
        }
    }

	@Override
	public void listBusiness() {
		String businessName="";
		String businessAddress="";
		String inputStr="";
		System.out.println("是否需要输入商家关键词(y/n)：");
		inputStr = input.next();
		if(inputStr.equals("y")) {
			System.out.println("请需要输入商家关键词：");
			businessName = input.next();
		}
		
		System.out.println("是否需要输入商家地址关键词(y/n)：");
		inputStr = input.next();
		if(inputStr.equals("y")) {
			System.out.println("请需要输入商家地址关键词：");
			businessAddress = input.next();
		}
		
		BusinessDao dao = new BusinessDaoImpl();
		List<Business>list = dao.listBusiness(businessName, businessAddress);
		System.out.println("商家编号\t商家名称\t商家介绍\t起送费\t配送费");
        for(Business b : list){
           System.out.println(b.getBusinessId()+"\t"
           +b.getBusinessName()+"\t"
           +b.getBusinessAddress()+"\t"
           +b.getBusinessExplain()+"\t"
           +b.getStartPrice()+"\t"
           +b.getDeliveryPrice());
        }
	}
    
    
    //从商家删除一条记录view层
    @Override
    public void removeBusiness() {
    	System.out.println("请输入商家编号：");
    	int businessId = input.nextInt();
    	BusinessDao dao = new BusinessDaoImpl();
    	
    	System.out.println("确认删除?(y/n)");
    	if(input.next().equals("y")) {
    		int removedLine = dao.removeBusiness(businessId);
    		if(removedLine==1) {
    			System.out.println("删除商家成功！");
    		} else {
    			System.out.println("删除商家失败！");
    		}
    	}
    }
    
    @Override
    public void saveBusiness() {
        System.out.println("请输入商家名称：");
        String businessName = input.next();
        BusinessDao dao = new BusinessDaoImpl();
        int businessId = dao.saveBusiness(businessName);
        if(businessId > 0) {
        	System.out.println("新建商家成功！商家编号为" + businessId);
        }
        else {
        	System.out.println("新建商家失败！");
        }
    }

	@Override
	public Business login() {
		System.out.println("请输入商家编号：");
        int businessId = input.nextInt();
		System.out.println("请输入商家密码：");
		String password = input.next();
		
        BusinessDao dao = new BusinessDaoImpl();
        return dao.getBusinessByIdByPass(businessId, password);
	}

	@Override
	public void showBusiness(Integer businessId) {
        BusinessDao dao = new BusinessDaoImpl();
        Business business = dao.getBusinessById(businessId);
        System.out.println(business);
	}

    @Override
    public void editBusiness(Integer businessId) {//编辑（更新）商家信息
    	BusinessDao dao = new BusinessDaoImpl();
    	Business business = dao.getBusinessById(businessId);
    	System.out.println(business);
    	
    	//修改商家名称
    	String inputStr = "";
    	System.out.println("是否修改商家名称(y/n).");
    	inputStr = input.next();
    	if(inputStr.equals("y")) {
        	System.out.println("请输入新的商家名称：");
        	business.setBusinessName(input.next());
    	}
    	//修改商家地址
    	System.out.println("是否修改商家地址(y/n).");
    	inputStr = input.next();
    	if(inputStr.equals("y")) {
        	System.out.println("请输入新的商家地址：");
        	business.setBusinessAddress(input.next());
    	}
    	//修改商家介绍
    	System.out.println("是否修改商家介绍(y/n).");
    	inputStr = input.next();
    	if(inputStr.equals("y")) {
        	System.out.println("请输入新的商家介绍：");
        	business.setBusinessExplain(input.next());
    	}
    	//修改商家起送费
    	System.out.println("是否修改商家起送费(y/n).");
    	inputStr = input.next();
    	if(inputStr.equals("y")) {
        	System.out.println("请输入新的商家起送费：");
        	business.setStartPrice(input.nextDouble());
    	}
    	//修改商家配送费
    	System.out.println("是否修改商家配送费(y/n).");
    	inputStr = input.next();
    	if(inputStr.equals("y")) {
        	System.out.println("请输入新的商家配送费：");
        	business.setDeliveryPrice(input.nextDouble());
    	}
    	
    	int result = dao.updateBusiness(business);
    	if(result>0) {
    		System.out.println("\n修改商家信息成功！\n");
    	} else {
    		System.out.println("\n修改商家信息失败！\n");
    	}
    }
    
    @Override
    public void updateBusinessPassword(Integer businessId) {//更新密码
    	BusinessDao dao = new BusinessDaoImpl();
    	Business business = dao.getBusinessById(businessId);
    	//输入一次旧密码，两次新密码
    	System.out.println("\n请输入旧密码：");
    	String oldpsw = input.next();    	
    	if(!(business.getPassword().equals(oldpsw))) {
    		System.out.println("\n密码不正确！");
    		return;
    	}
    	
    	System.out.println("\n请输入新密码：");
    	String newpsw = input.next();
    	System.out.println("\n请再次输入新密码：");
    	String newpsw_again = input.next();
    	if(!(newpsw.equals(newpsw_again))) {
    		System.out.println("\n两次输入密码不一致！");
    		return;
    	}
    	
    	int result = dao.updateBusinessPassword(businessId, newpsw);
    	if(result>0) {
    		System.out.println("\n修改密码成功！");
    	} else {
    		System.out.println("\n修改密码失败！");
    	}
    }
	
    
}
